package com.settlement.system.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.settlement.system.model.entity.SysStore;
import com.settlement.system.model.form.StoreForm;
import com.settlement.system.model.query.StorePageQuery;
import com.settlement.system.model.vo.StoreExportVO;
import com.settlement.system.model.vo.StoreVO;

import java.util.List;

/**
 * 店铺业务接口
 *
 * @author haoxr
 * @since 2022/1/14
 */
public interface SysStoreService extends IService<SysStore> {

    /**
     * 店铺分页列表
     *
     * @return
     */
    Page<SysStore> getStorePage(StorePageQuery queryParams);


    /**
     * 获取店铺表单数据
     *
     * @param storeId
     * @return
     */
    SysStore getStoreFormData(Long storeId);


    /**
     * 保存店铺
     *
     * @param storeForm 店铺表单对象
     * @return
     */
    boolean saveStore(StoreForm storeForm);

    /**
     * 删除店铺
     *
     * @param idsStr 店铺ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteStores(String idsStr);

    /**
     * 根据入账主体查询
     *
     * @param companyCode
     * @return
     */
    List<SysStore> getByCompanyCode(String companyCode);

    /**
     * 根据storeKey查询
     *
     * @param storeKey
     * @return
     */
    List<StoreVO> getListByStoreKey(String storeKey);

    /**
     * 获取所有店铺
     *
     * @return
     */
    List<StoreVO> getAllStore();


    SysStore getById(Long storeId);

    SysStore getByCode(String code);

    SysStore getByInnerSystemStoreCode(String innerSystemStoreCode);

    SysStore getByName(String name);

    void disableStores(String ids);

    void enableStores(String ids);

    void importStores(List<StoreExportVO> vos);
}
